ll dates in international time (DD-MM-YYYY)

tests since 24-8-2004

x.exp = F4b4SignExponent(0,0), x.sig = 318;
y.exp = F4b4SignExponent(0,-33), y.sig = 0xAAAAAAAB;	// 1/3
F4b4Add(&x,&y);
y.exp = F4b4SignExponent(0,-1), y.sig = 1;
F4b4Mul(&x,&y);
y.exp = F4b4SignExponent(0,0), y.sig = 1;
F4b4Add(&x,&y);
y.exp = F4b4SignExponent(0,0), y.sig = 3;
F4b4Mul(&x,&y);

y.exp = F4b4SignExponent(0,-33), y.sig = 0xAAAAAAAB;	// 1/3
x.exp = F4b4SignExponent(0,0), x.sig = 318;
F4b4Add(&x,&y);
x.exp = F4b4SignExponent(0,0), x.sig = 8;
y.exp = F4b4SignExponent(0,0), y.sig = 7;
F4b4Div(&x,&y);
y.exp = F4b4SignExponent(1,0), y.sig = 1;
F4b4Add(&x,&y);
y.exp = F4b4SignExponent(0,0), y.sig = 7;
F4b4Sub(&x,&y);
x.exp = F4b4SignExponent(0,0), x.sig = 0;
y.exp = F4b4SignExponent(0,0), y.sig = 0;
F4b4Div(&x,&y);

y.exp = F4b4SignExponent(0,-1), y.sig = 7;
x.exp = F4b4SignExponent(1,0), x.sig = 6;
F4b4Add(&x,&y);
y.exp = F4b4SignExponent(0,-1), y.sig = 6;
x.exp = F4b4SignExponent(1,0), x.sig = 7;
F4b4Add(&x,&y);
x.exp = F4b4SignExponent(1,-1), x.sig = 6;
y.exp = F4b4SignExponent(0,0), y.sig = 7;
F4b4Add(&x,&y);
x.exp = F4b4SignExponent(1,-1), x.sig = 7;
y.exp = F4b4SignExponent(0,0), y.sig = 6;
F4b4Add(&x,&y);

// first final
x.exp = F4b4SignExponent(0,0), x.sig = 1234;
y.exp = F4b4SignExponent(1,-32), y.sig = 0.56*4294967296.0+0.5;
F4b4Mul(&x,&y);
y.exp = F4b4SignExponent(0,0), y.sig = 1234;
F4b4Add(&y,&x);
x.exp = F4b4SignExponent(0,0), x.sig = 1234;
F4b4Div(&x,&y);
y.exp = F4b4SignExponent(0,-32), y.sig = 0.56*4294967296.0+0.5;
F4b4Add(&x,&y);
// ran the result through the formula backwards to find the small margin of error
//	(slightly more than 1234).

// new functions (25-8-2004)

a.exp = F4b4SignExponent(0,-31), a.sig = 0xC90FDAA2;	// pi/2 -> 1.0
F4b4Sine(&a);
a.exp = F4b4SignExponent(0,-32), a.sig = 0x860A91C1;	// pi/6 -> 0.5
F4b4Sine(&a);
a.exp = F4b4SignExponent(0,-30), a.sig = 0xC90FDAA2;	// pi -> -0.0
F4b4Sine(&a);
a.exp = F4b4SignExponent(0,-30), a.sig = 1;				// 2^-30 -> 2^-30

a.exp = F4b4SignExponent(0,-28), a.sig = 0x96CBE3FA;	// pi*3 -> -0.0
F4b4Sine(&a);
a.exp = F4b4SignExponent(0,-10), a.sig = 1;				// 2^-10 -> ~7.76178e-9%
F4b4Sine(&a);

//sin(450.5*3.14159265358979323846);
a.exp = F4b4SignExponent(0,-1), a.sig = 901;
b.exp = F4b4SignExponent(0,0), b.sig = 7;
F4b4Mod(&a,&b);
b.exp = F4b4SignExponent(0,-1), b.sig = 1;
F4b4Mod(&a,&b);
a.exp = F4b4SignExponent(0,0), a.sig = 75;
F4b4Div(&a,&f4b4_180_over_pi);
F4b4Sine(&a);
a.exp = F4b4SignExponent(0,0), a.sig = 87;
F4b4Div(&a,&f4b4_180_over_pi);
F4b4Sine(&a);
a.exp = F4b4SignExponent(0,0), a.sig = 103;
F4b4Div(&a,&f4b4_180_over_pi);
F4b4Sine(&a);
a.exp = F4b4SignExponent(0,0), a.sig = 230;
F4b4Div(&a,&f4b4_180_over_pi);
F4b4Sine(&a);

a.exp = F4b4SignExponent(0,0), a.sig = 5, b.exp = 0, b.sig = 1;
F4b4Sine(&a);
F4b4Mul(&a,&a);
F4b4Neg(&a);
F4b4Add(&a,&b);
F4b4Sqrt(&a);
b = a;
F4b4Floor(&a);
F4b4Ceil(&b);

a.exp = F4b4SignExponent(0,0), a.sig = 6;
F4b4Sine(&a);
F4b4Mul(&a,&a);
F4b4Neg(&a);
F4b4Add(&a,&b);
F4b4Sqrt(&a);
b = a;
F4b4Floor(&a);
F4b4Ceil(&b);
...

store = PraxInfNew(4);	// (4+1)*32*log10(2)  48.1648 decimal digits of precision
if (!store) return;

a.exp = F4b4SignExponent(0,0), a.sig = 3;
value = &store->value;
// the square root of 2 to 64 bits of significant digits (calculated with SANE)
value->exp = 0, value->sig[0] = 0xB504F333, value->sig[1] = 0xF9DE6484;
PraxInfMulF4b4(store,&a);

...
a.exp = F4b4SignExponent(0,0), a.sig = 2;
...
result = malloc(r*(2*sizeof(float4b4)));
if (!result) return;
aptr = result;
while(r)
{
	PraxInfMulF4b4(store,&a);
	asm
	{
		addq.l		#1,a.sig
		beq			@end
		bfextu		value->sig[1]{0:4},d0
		//cmpi.w	#0x10,d0
		bne.s		@n
		subq.l		#1,r
		movem.l		(value),d0-d2
		sub.l		#31,d0
		bfclr		d0{0:1}
		move.l		a.sig,(aptr)+
		movem.l		d0-d2,(aptr)
		lea			12(aptr),aptr
@n	}
}

^....
value->exp = 0, value->sig[0] = value->sig[1] = value->sig[2] = value->sig[3] =
value->sig[4] = value->sig[5] = value->sig[6] = value->sig[7] =
value->sig[8] = value->sig[9] = value->sig[10] = value->sig[11] =
value->sig[12] = value->sig[13] = value->sig[14] = value->sig[15] =
value->sig[16] = value->sig[17] = -1, value->sig[18] = -2;

a.exp = F4b4SignExponent(0,-3), a.sig = 3;
b.exp = 0, b.sig = 4, c.exp = 0, c.sig = 0;
F4b4Div(&b,&c);
F4b4Cmp(&a,&b);

a.exp = F4b4SignExponent(0,-31), a.sig = 0xFFFFFFFD;
F4b4Sqrt(&a);
a.exp = F4b4SignExponent(0,-31), a.sig = 0xFFFFFFFE;
F4b4Sqrt(&a);
a.exp = F4b4SignExponent(0,-31), a.sig = 0xFFFFFFFF;
F4b4Sqrt(&a);
...
a.exp = F4b4SignExponent(0,-31), a.sig = 0xC90FDD00;	// 0.FFFFFFFF FFF4CC34 (pff)
F4b4Sine(&a);
a.exp = F4b4SignExponent(0,-31), a.sig = 0xC90FDAA2;	// 1.0
F4b4Sine(&a);
a.exp = F4b4SignExponent(0,-31), a.sig = 0xC90FD000;	// 0.FFFFFFFF FF1DDD6B
F4b4Sine(&a);
a.exp = F4b4SignExponent(0,-31), a.sig = 0xC9000000;	// 0.FFFFFE09 4C8FC0CF
F4b4Sine(&a);
a.exp = F4b4SignExponent(0,-31), a.sig = 0xC8800000;	// 0.FFFF5E54 195094E6
F4b4Sine(&a);
a.exp = F4b4SignExponent(0,-31), a.sig = 0xC8000000;	// 0.FFFDBE9F 9D1296D3
F4b4Sine(&a);
a.exp = F4b4SignExponent(0,-31), a.sig = 0xC7800000;	// 0.FFFB1EED 778A202F
F4b4Sine(&a);
a.exp = F4b4SignExponent(0,-31), a.sig = 0xC7000000;	// 0.FFF77F40 48691E89
F4b4Sine(&a);

UnsignedWide	ta, tb, tt;

r = 100000;
Microseconds(&tt);
do {} while(--r);
Microseconds(&ta);
asm
{
	lea			ta+8,a0
	lea			tt+8,a1
	move		#0,ccr
	subx.l		-(a1),-(a0)
	subx.l		-(a1),-(a0)
}

r = 100000;
a.exp = F4b4SignExponent(0,-31), a.sig = 0xC90FDAA2;
Microseconds(&tt);
do
{
	F4b4Sine(&a);
	a.sig -= 0x3FFF;
} while(--r);
Microseconds(&tb);
asm
{
	lea			tb+8,a0
	lea			tt+8,a1
	move		#0,ccr
	subx.l		-(a1),-(a0)
	subx.l		-(a1),-(a0)
	addq.l		#8,a0
	lea			ta+8,a1
	move		#0,ccr
	subx.l		-(a1),-(a0)
	subx.l		-(a1),-(a0)
}
^...
a.exp = F4b4SignExponent(0,0), a.sig = 0x11;
Microseconds(&tt);
do
{
	F4b4Mul(&a,&a);
} while(--r);
^...
r = 1000000;
a.exp = F4b4SignExponent(0,0), a.sig = 1;
b.exp = F4b4SignExponent(0,-28), b.sig = 0x11;
...
do
{
	F4b4Add(&b,&a);
} while(--r);
^...
b.exp = F4b4SignExponent(0,-28), b.sig = 0x11;
...
do
{
	F4b4Sqrt(&b);
} while(--r);
^...
a.exp = F4b4SignExponent(0,0), a.sig = 0x11;
b.exp = F4b4SignExponent(0,0), b.sig = 15;
...
do
{
	F4b4Div(&a,&b);
} while(--r);
^...
value->exp = 4, value->sig[0] = 0x88000000;
b.exp = F4b4SignExponent(0,0), b.sig = 15;
...
do
{
	PraxInfMulF4b4(store,&a);
} while(--r);
^...
a.exp = 0, a.sig = 10;
F4b4ToStr(crap,&a);
a.exp = 0, a.sig = 5;
F4b4ToStr(crap,&a);
^...
a.exp = 0, a.sig = 2;
F4b4Sqrt(&a);
...
a.exp = F4b4SignExponent(0,-32), a.sig = 0xAAAAAAAB;	// 2/3
F4b4ToStr(crap,&a);
a.exp = F4b4SignExponent(0,-1), a.sig = 1;
F4b4ToStr(crap,&a);
a.exp = 0, a.sig = -1;
F4b4ToStr(crap,&a);
^...
a.exp = F4b4SignExponent(0,4), a.sig = 0xF3C0E9CA;	// 6.54321e+10
F4b4ToStr(crap,&a);
a.exp = F4b4SignExponent(0,1000000000), a.sig = 1;	// 4.61297601e+301029995
F4b4ToStr(crap,&a);
^...
a.exp = F4b4SignExponent(0,27019), a.sig = 0x9B84EA28;	// 8.82991959e+8142
^...
a.exp = F4b4SignExponent(0,33219), a.sig = 0x9B84EA28;	// 2.14748365e+10009
^...
a.exp = F4b4SignExponent(0,33188), a.sig = 0x9B84EA28;	// 1.e+10000
^...
a.exp = F4b4SignExponent(0,-1073741824), a.sig = 1;		//	INF
F4b4ToStr(crap,&a);
a.exp = F4b4SignExponent(0,-1073741824), a.sig = 2;
//	NAN(000+ (5-9-2004), NAN(002) (6-9-2004)
F4b4ToStr(crap,&a);
F4b4ToStr(crap,&f4b4_half_pi);							//	1.57079633 (6-9-2004)
a.exp = F4b4SignExponent(0,0), a.sig = 10;				//	1.e+1
F4b4ToStr(crap,&a);
a.exp = F4b4SignExponent(0,-28), a.sig = -1;			//	1.6e+1
F4b4ToStr(crap,&a);
a.exp = F4b4SignExponent(0,-29), a.sig = 0xA0000003;
//	5. (5-9-2004), 5.00000001 (6-9-2004)
F4b4ToStr(crap,&a);
...
// take your pick of sample rates:
//	23100, 24150, 24360, 25200, 26040, 26240, 26880, 27440, 27600, 27720
c.exp = F4b4SignExponent(0,0), c.sig = 25200;

// 880*2*/4 -- (two octaves above middle C)
//	- it will turn into middle C after being multiplied by /2 versus 2
t.exp = F4b4SignExponent(0,-23), t.sig = 0x82D01286;

r = 50400;
...
a.exp = F4b4SignExponent(0,0), a.sig = 0;
F4b4ToStr(crap,&t);										//	1.04650226e+3
F4b4Mul(&t,&t,&f4b4_half_pi);
F4b4ToStr(crap,&t);										//	1.64384191e+3
^...
//c.exp = F4b4SignExponent(0,-17), c.sig = 0x3804F839;	--	2.96984848+4
c.exp = F4b4SignExponent(0,0), c.sig = 29694;
...
^...
// take your pick of sample rates:
//	22110, 22440, 23100, 23760, 24150, 24360, 24420, 25080, 25200, 25740, 26040
//	26240, 26400, 26880, 27060, 27440, 27600, 27720, 28380, 29040, 29400, 29700
//	30030, 30360, 30800, 31020, 33000, 32340, 34650, 35640, 36960
c.exp = F4b4SignExponent(0,0), c.sig = 26400;

t.exp = F4b4SignExponent(0,2), t.sig = 220;

r = 52800;
result = malloc(r*sizeof(float4b4));
if (!result) return;
aptr = result;
a.exp = F4b4SignExponent(0,0), a.sig = 0;
F4b4ToStr(crap,&t);
F4b4Mul(&t,&t,&f4b4_half_pi);
F4b4ToStr(crap,&t);
do
{
	F4b4Mul(&b,&a,&t);
	F4b4Div(&b,&b,&c);
	F4b4Sine(aptr,&b);
	++aptr, ++a.sig;
} while(--r);
Debugger();
aptr = result, r = 52799;
do
{
	//F4b4Sub(&b,aptr+1,aptr);
	//F4b4Mul(aptr++,&b,&b);
	F4b4Mul(aptr++,aptr,aptr);
} while(--r);
d = 1000, r = 1;
a.exp = 0, a.sig = 1+d;
Debugger();
bptr = malloc(d*sizeof(float4b4));
do
{
	aptr = result;
	F4b4Add(&b,++aptr,aptr);
	r = d;
	while(--r) F4b4Add(&b,&b,++aptr);
	F4b4Div(bptr++,&b,&a);
	--a.sig;//, *((SInt16*)(bptr-1)) = d;
} while(*((SInt16*)(bptr-1))=--d);
^...
FSine32(0xC0000000);					--	3/4	-> .5*/
FSine32(0x80000000);					--	/2		-> 1
FSine32(0x40000000);					--	/4		-> 0.B504F333/0.FFFFFFFF, .5*/
FSine32(0x2AAAAAAB);					--	/6		-> .5
...
FSineX32(0x55555555,0x55555555);		--	/3		-> 0.DDB3D742/0.FFFFFFFF, .75*/
FSineX32(0,0x80000000);					--	/2**33	-> 2/0.FFFFFFFF
^...
FSineX32(-1,-1);
FSineX32(0x88888888,0x88888889);
FSineX32(0,0xB504F334);
...
^...
fa.hi = 0, fa.lo = 0x860A91C1;
RSine32(fa,Fixed32_two_pi,0x80000000);	--	/6		-> (3FFFFFFF+0.8)/80000000
fa.hi = 1, fa.lo = 0x921FB544;
RSine32(fa,Fixed32_two_pi,0x8000);		--	/2		-> (7FFF+0.8)/8000
...
^...
fa.hi = 0, fa.lo = 0, ff.hi = 220, ff.lo = 0;	// 220Hz sine wave at 60.06KHz SRate
do
{
	*aptr++ = RSine32(fa,fr,0x8000);
	SAdd64(&fa,&ff);
} while(--r);
^...
fr.hi = 46200*2, fr.lo = 0;
d = 46200*3;	// 3 seconds
result = malloc(d*2);
if (!result) goto end;
aptr = result;
fa.hi = 0, fa.lo = 0, ff.hi = 440, ff.lo = 0;
r = d/6;
do
{
	*aptr++ = RSine32(fa,fr,0x3000);
	SAdd64(&fa,&ff);
} while(--r);
ff.hi = 466, ff.lo = 0x29EC465D;
r = d/6;
do
{
	*aptr++ = RSine32(fa,fr,0x3000);
	SAdd64(&fa,&ff);
} while(--r);
ff.hi = 523, ff.lo = 0x404A1857;	// middle C
r = d/3;
do
{
	*aptr++ = RSine32(fa,fr,0x3000);
	SAdd64(&fa,&ff);
} while(--r);
ff.hi = 1920, ff.lo = 0;
r = d/3;
do
{
	*aptr++ = RSine32(fa,fr,0x8000);
	SAdd64(&fa,&ff);
} while(--r);
fr.hi /= 2;
...
d.hi = 2, d.lo = 0;
n.hi = 2, n.lo = 0x80000000;
RSine30(n,d,0x80000000);
d.hi = 3, d.lo = 0;
RSine30(n,d,0x80000000);
...
^...
r = 1000000;
Microseconds(&tt);
do {} while(--r);
Microseconds(&ta);
asm
{
	lea			ta+8,a0
	lea			tt+8,a1
	move		#0,ccr
	subx.l		-(a1),-(a0)
	subx.l		-(a1),-(a0)
}

r = 1000000, d.hi = 0x10000, d.lo = 0, n.hi = 0x4000, n.lo = 0;
Debugger();
Microseconds(&tt);
do
{
	n.hi += 0x4000;
	RSine30(n,d,0x80000000);
} while(--r);
Microseconds(&tb);
Debugger();
asm
{
	lea			tb+8,a0
	lea			tt+8,a1
	move		#0,ccr
	subx.l		-(a1),-(a0)
	subx.l		-(a1),-(a0)
	addq.l		#8,a0
	lea			ta+8,a1
	move		#0,ccr
	subx.l		-(a1),-(a0)
	subx.l		-(a1),-(a0)
}
...
^...
SGN(-5);
SGN(-1);
SGN(0);
SGN(1);
SGN(5);
d.hi = 0x10000, d.lo = 0, n.hi = 0x7FFF4000, n.lo = 0;
RSine30(n,d,0x80000000);
...
d.hi = 0x10000, d.lo = 0, n.hi = 0x8FFF4000, n.lo = 0;
RSine30(n,d,0x80000000);
...
^...
Float96				x_one = {{0x3FFF,0},{0x8000,0,0,0}};
...
float4b4		a;
float			f = 1.5;
short double	d = 1.5;

Debugger();
a = (xpraxSingle)(x_one);
F4b4ToStr(crap,&a);
a = (lpraxSingle)(exp(-690));
F4b4ToStr(crap,&a);
a = (dpraxSingle)(d);
F4b4ToStr(crap,&a);
a = (fpraxSingle)(f);
F4b4ToStr(crap,&a);
^...
Float96				bull = {{0x7FFF,0},{0,0,0,0}};
...
float4b4		a;

Debugger();
a = (xpraxSingle)(bull);
F4b4ToStr(crap,&a);
a = (lpraxSingle)((1.0/0.0));
F4b4ToStr(crap,&a);
a = (dpraxSingle)((1.0/0.0));
F4b4ToStr(crap,&a);
a = (fpraxSingle)((1.0/0.0));
F4b4ToStr(crap,&a);
bull = (nativeFP96)(a);
a.exp = -1, a.sig = 3;
bull = (nativeFP96)(a);
(nativeFP80)(a);
(nativeFP64)(a);
(nativeFP32)(a);
^...
-- this was to make sure that the newly found bug(s) is/are gone... n sh**
b.exp = 1, b.sig = 0, a.exp = 0x7FFFFFE0, a.sig = 0x80000000;
Debugger();
F4b4Add(&a,&a,&b);
F4b4Add(&b,&b,&a);
...
^...
a.exp = F4b4SignExponent(0,-28), a.sig = 0x9DE9E64E;	// **
F4b4Log2(&b,&a);
F4b4Sqrt(&b,&a);
F4b4Cbrt(&b,&a);
a.exp = F4b4SignExponent(0,0), a.sig = 3;
F4b4Sqrt(&b,&a);
a.exp = F4b4SignExponent(0,0), a.sig = 5;
F4b4Sqrt(&b,&a);
a.exp = F4b4SignExponent(0,0), a.sig = 8;
F4b4Cbrt(&b,&a);
a.exp = F4b4SignExponent(0,0), a.sig = 27;
F4b4Cbrt(&b,&a);
/*a.exp = F4b4SignExponent(0,-1), a.sig = 1;
b.exp = 0, b.sig = 3;
F4b4ATan2(&b,&a,&b);
a.exp = F4b4SignExponent(0,-1), a.sig = -1;
F4b4ATan(&b,&a);*/
...
^...
a.exp = F4b4SignExponent(0,3), a.sig = 393209;			// 3,145,672
F4b4Log2(&b,&a);
F4b4Sqrt(&b,&a);
F4b4Cbrt(&b,&a);
a.exp = F4b4SignExponent(0,1), a.sig = 5;				// 10
F4b4Log2(&b,&a);
a.exp = F4b4SignExponent(0,-31), a.sig = 0xB504F334;	// 2/*
F4b4Sqrt(&b,&a);
F4b4Cbrt(&b,&a);
^...
a.hi = 3, a.lo = 3, b.hi = 3, b.lo = 0;
S64Gt(&a,&b);
U64Gt(&a,&b);
a.hi = 3, a.lo = 0, b.hi = 3, b.lo = 3;
S64Gt(&a,&b);
U64Gt(&a,&b);
a.hi = -3, a.lo = 0, b.hi = 3, b.lo = 3;
S64Gt(&a,&b);
U64Gt(&a,&b);
...
a.hi = 3, a.lo = 3, b.hi = 3, b.lo = 3;
S64Gt(&a,&b);
U64Gt(&a,&b);
UDiv64U32(&a,2);
...
a.hi = -1, a.lo = 0xC0000003;
do
{
	if (x=='xEqU') ;
	if (Int64EqU32(a,x))	++y;
	nop();

	if (x=='SGtU') ;
	if (S64GtU32(a,x))		++y;
	if (x=='UGtU') ;
	if (U64GtU32(a,x))		++y;
	nop();

	if (x=='UGeU') ;
	if (U64GeU32(a,x))		++y;
	if (x=='SGeU') ;
	if (S64GeU32(a,x))		++y;
	nop();

	if (x=='ULtU') ;
	if (U64LtU32(a,x))		++y;
	if (x=='SLtU') ;
	if (S64LtU32(a,x))		++y;
	nop();

	if (x=='ULeU') ;
	if (U64LeU32(a,x))		++y;
	if (x=='SLeU') ;
	if (S64LeU32(a,x))		++y;
	nop();

	Add64U32(&a,0x40000000);
} while(a.hi<3);

^...
float4b4			a;
register praxInfinite			*store;

store = PraxInfNew(18);	-- (18+1)*32*log10(2)  183.026 decimal digits of precision
if (!store) return;

a.exp = F4b4SignExponent(0,0), a.sig = 3;
value = &store->value;

isqrt(0);
isqrt(1);
isqrt(2);
isqrt(5);
isqrt(0xA0000);
isqrt(0x8000000);
isqrt(0x80000000);
isqrt(-1);

^...
isqrt(6);
isqrt(8);
isqrt(9);
isqrt(0x80000000);
isqrt(0xC0000);
isqrt(0xC000000);
isqrt(0xC0000000);
isqrt(0xFFFF0000);

^...?
isqrt(128);
isqrt(129);
isqrt(130);
isqrt(131);
isqrt(132);
isqrt(200);
isqrt(1000);
isqrt(6400);
isqrt(10000);
isqrt(100000);
isqrt(1600000000);
isqrt(4294770690UL);
isqrt(4294770691UL);
isqrt(0xFFFF0000);
isqrt(0xFFFF0001);

^...
/* (random number) sqrt test */
isqrt(1123456);
isqrt(3220987652);
isqrt(31459);
isqrt(16234);
isqrt(12345);
isqrt(2501035);
isqrt(863263881);

^...
VFix16Mul(9,0x8000);
VFix16Mul(0x7FFEFFFF,0x10000);
VFix16Mul(0x7FFF0000,0x20000);
VFix16Mul(0x7FFF7FFF,0x10000);
VFix16Mul(0x7FFF7FFF,0x10001);
VFix16Mul(0x7FFFFFFF,0x10000);
VFix16Mul(0x7FFFFFFF,0x10001);
VFix16Mul(-9,0x8000);
VFix16Mul(-9,0x7FFF);
VFix16Mul(-9,0x7FFF);
VFix16Mul(0x80000000,0x10000);
VFix16Mul(0x80000000,0x10001);

^...
VFix16Div(9,0);
VFix16Div(32767,1);
VFix16Div(-32768,1);
VFix16Div(65536,1);
VFix16Div(131071,1);
VFix16Div(131072,1);
VFix16Div(9,0x8000);
VFix16Div(0x7FFEFFFF,0x10000);
VFix16Div(0x7FFF0000,0x20000);
VFix16Div(0x7FFF7FFF,0x10000);
VFix16Div(0x7FFF7FFF,0x10001);
VFix16Div(0x7FFFFFFF,0x10000);
VFix16Div(0x7FFFFFFF,0x10001);
VFix16Div(-9,0x8000);
VFix16Div(-9,0x7FFF);
VFix16Div(-9,0x7FFF);
VFix16Div(0x80000000,0x10000);
VFix16Div(0x80000000,0x10001);
^...
UInt64 crap;
long double crappier;
...
Debugger();
	XSetInt64(crap,5000000000.0);
	crappier = UInt64ToLongDouble(crap);
-- 12-3-2006 7:19
--scripting_tests.c
...
	do
	{
		fast_sine(line);
	} while(line+=0x10000000);
	XSetInt64(v64,1234567890123.0);
	ias_numbre(temporary,v64,10,'0',',',1);
...
-- 28-4-2006 3:14
	HSV32_to_RGB24(0x555BBB88);
-- 7:25
	HSV32_to_RGB24(0xAABBBB88);
-- 7:53
	pack_ias_name_string("find_all_checkpoints_references_by_te",(UInt8*)temporary);
	unpack_ias_name_string((UInt8*)temporary,temporary+64);
	pack_ias_name_string("find_all_checkpoints_references_by_ter",(UInt8*)temporary);
	unpack_ias_name_string((UInt8*)temporary,temporary+64);
	pack_ias_name_string("find_all_checkpoints_references_by_term",(UInt8*)temporary);
	unpack_ias_name_string((UInt8*)temporary,temporary+64);
	pack_ias_name_string("find_all_checkpoints_references_by_terminals",(UInt8*)temporary);
	unpack_ias_name_string((UInt8*)temporary,temporary+64);
	pack_ias_name_string("find_all_checkpoints_references_by_terminals56789",(UInt8*)temporary);
	unpack_ias_name_string((UInt8*)temporary,temporary+64);
	pack_ias_name_string("find_all_checkpoints_references_by_terminals567890",(UInt8*)temporary);
	unpack_ias_name_string((UInt8*)temporary,temporary+64);
	pack_ias_name_string("find_all_checkpoints_references_by_terminals5678901",(UInt8*)temporary);
	unpack_ias_name_string((UInt8*)temporary,temporary+64);
	HSV32_to_RGB24(0x4001BB88);
-- 29-4-2006 8:42
-- bs = "brain=5"
	initialize_parsing_characters(default_ias_parsing_ctype);
	ias_text_to_script(NULL,0,NULL,temporary,384,'"');
	ias_text_to_script(bs,sizeof(bs),NULL,temporary,384,'"');
-- 10:25
-- bs = "brain=5\7\xFF\x7F"
-- 3-5-2006 23:28, 4-5-2006 00:12
--  This is from the older format.
--  It no longer works.
/* 110 & twelfth root two product: 0x603F, 25639 (25,639.006883495) */
resource 'mxsn' (0,"mixbit demo")
{
	VersionOne
	{
		mono, rate22050, 143325 /* 6 1/2 seconds */

		$"C0E1 11 2000"
		$"C0E1 22 2000"
		$"C0E1 33 2000"
		$"CFFF 44 2000"
		$"CFFF 55 2000"
		$"CAE0 66 1F00"
		$"CFFF 77 1C00"
		$"CFFF 88 1C00"
		$"CAE0 99 1B00"
		$"CFFF AA 1800"
		$"CFFF BB 1800"
		$"CAE0 CC 1700"
		$"CFFF DD 1400"
		$"CFFF EE 1400"
		$"CAE0 FF 1300"
		$"CFFF FF 1000"
		$"CFFF FF 1000"
		$"CAE0 FF 1000"

		$"DFFF FF 1000"
		$"DFFF FF 1000"
		$"DAE0 FF 1100"
		$"DFFF FF 1307"
		$"DFFF FF 1307"
		$"DAE0 FF 1407"
		$"DFFF FF 16A1"
		$"DFFF FF 16A1"
		$"DAE0 FF 17A1"
		$"DFFF FF 1AE9"
		$"DFFF FF 1AE9"
		$"DAE0 FF 1BE9"
		$"DFFF FF 2000"
		$"DFFF FF 2000"
		$"D56B FF 2040"
		$"D2AC FF 2100"
		$"D14D FF 2400"
		$"D14D FF 2C00"
		$"D3EF FF 2E00"
		$"DFEF FF 3000"
		$"D0EF FF 0C00"
		$"D1F3 FF 2E00"
		$"D1F3 FE 2C00"
		$"D1F2 FD 2A00"
		$"D1F1 FC 2800"
		$"D1F0 FB 2600"
		$"D1EF FA 2400"
		$"D1EE F8 2200"
		$"D1ED F7 2000"

		$"E110 0F 1D00"
		$"E10C 1F 1D08"
		$"E108 2F 1D10"
		$"E104 3F 1D18"
		$"E100 4F 1D20"
		$"E0FC 5F 1D28"
		$"E0F8 6F 1D30"
		$"E0F4 7F 1D38"
		$"E0F0 8F 1D40"
		$"E0EC 9F 1D48"
		$"E0E8 AF 1D50"
		$"E0E4 BF 1D58"
		$"E0E0 CF 1D60"
		$"E0DC DF 1D68"
		$"E0D8 EF 1D70"
		$"E0D4 FF 1D78"

		$"E0D0 FF 1D80"
		$"E0EF F7 1C80"
		$"E0EF EF 1B80"
		$"E0EF FF 1C00"
		$"E0EF F7 1B00"
		$"E0EF EF 1A00"
		$"E0EF FF 1A80"
		$"E0EF F7 1980"
		$"E0EF EF 1880"
		$"EFFF FF 1000"
		$"EFFF FF 1000"
		$"EFFF FE 1000"

		$"E0EF FD 0F80"
		$"E0EF FC 0F00"
		$"E0EF FB 0E80"
		$"E0EF FA 0E00"
		$"E0EF F9 0D80"
		$"E0EF F8 0D00"
		$"E0EF F7 0C80"
		$"E0EF F6 0C00"
		$"E0EF F5 0B80"
		$"E0EF F4 0B00"
		$"E0EF F3 0A80"
		$"E0EF F2 0A00"
		$"E0EF F1 0980"
		$"E0EF F0 0900"
		$"E0EF EF 0880"
		$"E0EF EE 0800"

		$"F5"
		$"D0DE 11 029E"
		$"D0DF 22 031E"
		$"DFFF 97 1307"
		$"DFFF 88 1307"
		$"DFFF 79 1307"
		$"DFFF 6B 1307"
		$"DFFF 5C 1307"
		$"DFFF 4E 1307"
		$"DFFF 40 1307"
		$"DFFF 32 1307"
		$"DFFF 25 1307"
		$"DFFF 18 1307"
		$"DFFF 0C 1307"
		$"DFFF 08 1307"
		$"DFFF 04 1307"
		$"DFFF 02 1307"

		$"F5"
		$"D0E0 44 0431"
		$"D0DF 55 0501"
		$"DFFF 75 260E"
		$"DFFF 66 260E"
		$"DFFF 57 260E"
		$"DFFF 49 260E"
		$"DFFF 3B 260E"
		$"DFFF 2E 260E"
		$"DFFF 22 260E"
		$"DFFF 15 260E"
		$"DFFF 0B 260E"
		$"DFFF 05 260E"
		$"DFFF 02 260E"

		$"F5"
		$"D0E1 7B 060E"
		$"D0E3 76 0700"
		$"D0E3 69 0711"
		$"D0DF 55 0522"
		$"D0E0 33 045E"
		$"D0DF 22 031E"
		$"D0DE 11 029E"

		$"FF"
	};
};
